package com.rd.teacher.jichao.day20;

import java.util.ArrayList;
import java.util.Scanner;

public class TestRandom1 {

    public static void main(String[] args) {
        String all = "郑成祥、王博、孙文卓、郑睿娴、王高博、李春泉、张睿、王星凯、柏云耀、高艺铭、周子贺、杜航、高晨曦、张思韬、孙昊、方周、郭佳宝、姜万里、李宏鸣、薛志鑫、王海鑫、夏银银、吴俊豪、王向阳、徐铭泽、张世煊、才雨鑫、孙国伟、秦嘉林、王岩博、石睿、杜雨坤、黄奕鸣、金洪宇、李鑫、王宇芳、苏岩";

        String[] allArr = all.split("、");
        System.out.println(allArr.length);

        Scanner scanner = new Scanner(System.in);
        System.out.println("请输入要随机的人数：");
        int n = scanner.nextInt();
        int len = allArr.length;

        // 使用list去重
        // 可以记录随机的位置  也可以记录随机的元素本身
//        ArrayList<Integer> list = new ArrayList<>(n);
//        for (int i = 0; i < n; i++) {
//            int random = (int) (Math.random() * len);
//            // 要么将random存入  要么将random抛弃
//            if (list.contains(random)) {
//                // 如果已经随机出现过
//                System.out.println("已经随机过: " + random);
//                i--;
//                continue;
//            }
//            // 可以不写else 处理没出现过的逻辑 （不包含此元素的情况）
//            list.add(random);
//            System.out.println(allArr[random]);
//        }
//        System.out.println(list);

//        ArrayList<String> eleList = new ArrayList<>();
//        for (int i = 0; i < n; i++) {
//            int random = (int) (Math.random() * len);
//            String ele = allArr[random];
//
//            if (eleList.contains(ele)) {
//                System.out.println("已经随机过：" + ele);
//                i--;
//                continue;
//            }
//
//            eleList.add(ele);
//            System.out.println(ele);
//        }
//        System.out.println(eleList);
//

        // eleList承装所有随机后不重复的元素  eleList.size == n
        ArrayList<String> eleList1 = new ArrayList<>();
        // 随机n次  如果重复一次 随机n+1次  重复3次 随机n+3次
        // 需要n个元素  随机一次放入一个   放入的前提是不重复

        // 通过结果集中的长度和n进行比较  来判断是否需要继续循环
        // {"郑睿娴"、"柏云耀"}
        // n=5
        // "郑睿娴"  {"郑睿娴","柏云耀"}
        // "王星凯"  {"郑睿娴","柏云耀","王星凯"}
        while (eleList1.size() < n) {
            int random = (int) (Math.random() * len);
            String ele = allArr[random];
            if (!eleList1.contains(ele)) {
                System.out.println("添加元素：" + ele);
                eleList1.add(ele);
            } else {
                System.out.println("重复元素：" + ele);
            }
        }
        System.out.println(eleList1);


    }
}
